package com.purchase.ml.service.prod;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.purchase.ml.bean.base.ApiRestResult;
import com.purchase.ml.bean.req.dealer.*;
import com.purchase.ml.bean.req.prod.SysProdEditDto;
import com.purchase.ml.bean.req.prod.SysProdNewDto;
import com.purchase.ml.bean.req.prod.SysProdQueryDto;
import com.purchase.ml.bean.res.prod.SysProdRes;
import com.purchase.ml.bean.res.prod.SysShopProdRes;
import com.purchase.ml.entity.dealer.SysDealer;
import com.purchase.ml.entity.prod.SysCategory;
import com.purchase.ml.entity.prod.SysProduct;
import com.purchase.ml.entity.prod.SysProductSku;

import java.math.BigDecimal;
import java.util.List;

/**
 *
 */
public interface SysProdService extends IService<SysProduct>{
    /**
     * 新增商品
     * @param prodNewDto
     * @return
     */
    ApiRestResult createProduct(SysProdNewDto prodNewDto);

    /**
     * 修改产品
     * @param prodEditDto
     * @return
     */
    ApiRestResult editProd(SysProdEditDto prodEditDto);

    /**
     * 分页查询商品
     * @param prodQueryDto
     * @return
     */
    IPage<SysProduct> prodPage(SysProdQueryDto prodQueryDto);

    /**
     * 分页查询主经销商-产品
     * @param dealerProdQueryDto
     * @return
     */
    IPage<SysProdRes> dealerProdQuery(DealerProdQueryDto dealerProdQueryDto);

    /**
     * 修改主经销商产品
     * @param dto
     * @return
     */
    ApiRestResult editDealerProd(DealerProdEditDto dto);

    /**
     * @description: 根据商品编号查询商品
     * @author kyyang
     * @date 2021/2/28 15:36
     * @version 1.0
     */
    SysProduct findProductByProductId(Long productId);

    /**
     * 批量删除商品  === 》将商品下线
     * @param ids
     */
    void batchDeleteProd(List<Long> ids);

    /**
     * 查询商店商品--只查询正常的
     * @param prodQueryDto
     * @return
     */
    com.purchase.ml.bean.page.Page<SysShopProdRes> shopProdPage(SysProdQueryDto prodQueryDto);

    /**
     * @description    :通过主键id查询商店商品详情
     * @author         :zxm
     * @date           :2021/4/26
     * @param          :[id]
     * @return         :SysProduct
    **/
    SysProduct selectProdDetailsById(Long id);
}
